home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / guiext162.lha / GuiExtension / GUICompiler / GuiShell-AMCAF.Amos / GuiShell-AMCAF.amosSourceCode < prev    next >
AMOS Source Code  |  1997-05-04  |  6KB  |  195 lines

  1. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. '  AMOSPro GUI Compiler Shell V1.22     -    * AMCAF Version * 
  3. '  ï¿½1996-1997 Dairymen Soft  
  4. '  Written by Pietro Ghizzoni - Amos Professional Team Coordinator 
  5. '  E-Mail: ghizzo@agonet.it
  6. '
  7.  
  8. Global FILE$,SOURCE$,DEST$,DEF$,JUMP$,LIB$,TITLE$,HAND,HAND2,_PATH$
  9.  
  10.  Extension_8_108E 7 : Extension_24_0018 1,1,20 : Extension_24_0494 1,13,0,63
  11. DEF$=" WB NODEF NOERR TYPE=0" : JUMP$=" NOLONG" : LIB$=" INCLIB" : Restore ABOUT
  12.  
  13. For I=1 To 4 : Read A$ : M$=M$+A$+Chr$(10) : Next : TITLE$="GUI Compiler Shell Request"+Chr$(0)
  14. _PATH$=Resource$(0)+"GUICmp"
  15. If Exist(_PATH$)=False
  16.    
  17.    Repeat 
  18.       REQ["Load GUI compiler",""]
  19.    Until Extension_24_0178 ="GUICmp"
  20.    _PATH$=FILE$
  21.    
  22. End If 
  23.  
  24. Do 
  25.    
  26.    GAD= Extension_24_0034 : CD= Extension_24_0052 : C$= Extension_24_0060 : ERR["",0]
  27.    
  28.    If GAD=-1
  29.        Extension_8_10A8 : Extension_24_0130 : Extension_24_0090 : End 
  30.       
  31.    Else If GAD=0
  32.       REQ["Select source program","#?.Amos"]
  33.       If Param=True
  34.          SOURCE$=FILE$ : Extension_24_009E 1,2,0,Varptr(FILE$) : C$=Left$(SOURCE$,Len(SOURCE$)-5) : Goto SD
  35.       End If 
  36.       
  37.    Else If GAD=1
  38.       SD2:
  39.       If SOURCE$><""
  40.          Repeat 
  41.             A=1 : REQ["Select destination program",""]
  42.             If Param=True
  43.                A= Extension_24_0150(TITLE$,"File already exist! Overwrite?","OK|Cancel")
  44.                If A : Kill FILE$ : End If 
  45.                
  46.             End If 
  47.          Until A><0
  48.          If FILE$><"" : DEST$=FILE$ : Extension_24_009E 1,3,0,Varptr(FILE$) : End If 
  49.       Else 
  50.          ERR["Select source program!",1]
  51.       End If 
  52.       
  53.    Else If GAD=2
  54.       If Exist(C$)
  55.          SOURCE$=C$ : C$=Left$(SOURCE$,Len(SOURCE$)-5) : Goto SD
  56.       Else 
  57.           Extension_24_009E 1,2,0,Varptr(SOURCE$)
  58.       End If 
  59.       
  60.    Else If GAD=3
  61.       If SOURCE$><""
  62.          SD: DEST$=C$
  63.          If Exist(DEST$)
  64.             A= Extension_24_0150(TITLE$,"File already exist! Overwrite?","OK|Cancel")
  65.          If A=0 : Goto SD2 Else Kill DEST$ : End If 
  66.          End If 
  67.       Else 
  68.          ERR["Select source program!",1]
  69.       End If 
  70.        Extension_24_009E 1,3,0,Varptr(DEST$)
  71.       
  72.    Else If GAD=4
  73.       C0MPILE
  74.       
  75.    Else If GAD=5
  76.    If CD=0 : JUMP$=" NOLONG" Else JUMP$=" LONG" : End If 
  77.       
  78.    Else If GAD=6
  79.    If CD=0 : LIB$=" INCLIB" Else LIB$=" NOLIB" : End If 
  80.       
  81.    Else If GAD=10
  82.        Extension_24_032E 1
  83.       
  84.    Else If GAD=8
  85.       A= Extension_24_0150("About",M$,"OK")
  86.       
  87.    Else If GAD=11
  88.    If CD : Extension_8_10A8 Else Extension_8_15CC : End If 
  89.       
  90.    Else If GAD=-6
  91.        Extension_24_0340 1
  92.       
  93.    Else If GAD=7
  94.       Repeat 
  95.          REQ["Select file to delete...",""]
  96.       Until Param or FILE$=""
  97.       If Len(FILE$)
  98.          A= Extension_24_0150(TITLE$,"Delete "+FILE$+"!  Are you sure?","Yes|No")
  99.          If A : Kill FILE$ : End If 
  100.       End If 
  101.       
  102.    Else If GAD=9 or GAD=13
  103.        Extension_8_10C6 CD
  104.       
  105.    End If 
  106.    
  107. Loop 
  108.  
  109. Procedure REQ[F$,P$]
  110.    
  111.    F$= Extension_24_0162(F$+Chr$(0),"","",P$+Chr$(0)) : FILE$=F$
  112.    
  113. End Proc[Exist(FILE$)]
  114. Procedure C0MPILE
  115.    
  116.    If SOURCE$="" Then ERR["Select a source program!",1] : Pop Proc
  117.    If DEST$="" Then ERR["Select destination program!",1] : Pop Proc
  118.    
  119.    V$=Chr$(34) : COM$=" FROM "+V$+SOURCE$+V$+" TO "+V$+DEST$+V$+DEF$+JUMP$+LIB$
  120.    Timer=0 : _EXEC[_PATH$+COM$] : T=Timer : Trap Open In 1,DEST$
  121.    
  122.    If Errtrap
  123.       A= Extension_24_0150(TITLE$,"Compilation Error!","Ooopss!") : ERR["Abort...",1]
  124.    Else 
  125.       M=T/3000 : S=(T/50)-(M*60) : TIME$=(Str$(M)+":"+Str$(S))-" "
  126.       A= Extension_24_0150(TITLE$,"Time used "+TIME$+" secs","OK") : Close : COK=1
  127.    End If 
  128.    
  129.    Dreg(1)=HAND : A=Doscall(-36) : Dreg(1)=HAND2 : A=Doscall(-36)
  130.    If COK Then PURIFY
  131.    
  132. End Proc
  133. Procedure _EXEC[C$]
  134.    
  135.    RAW$="RAW:28/69/584/128/GUI Compiler Output"+Chr$(0) : Dreg(1)=Varptr(RAW$) : Dreg(2)=1004
  136.    HAND=Doscall(-30)
  137.    
  138.    NIL$="NIL:"+Chr$(0) : Dreg(1)=Varptr(NIL$) : Dreg(2)=1004
  139.    HAND2=Doscall(-30)
  140.    
  141.    If HAND
  142.       C$=C$+Chr$(0) : Dreg(1)=Varptr(C$) : Dreg(2)=HAND2 : Dreg(3)=HAND
  143.       F=Doscall(-222)
  144.    End If 
  145.    
  146. End Proc
  147. Procedure PURIFY
  148.    
  149.    F$="S:AMOSPro_Interpreter_Config" : Trap Open In 1,F$
  150.    If Errtrap Then F$="S/AMOSPro_Interpreter_Config" : Trap Open In 1,F$
  151.    
  152.    If Errtrap=0
  153.       ERR["Purify'ing code!",0]
  154.       L=Lof(1) : Close : Reserve As Work 10,L+2
  155.       Bload F$,Start(10) : S=Start(10)
  156.       If Peek$(S,4)="PId1"
  157.          STAD=S+Leek(S+4)+8
  158.          If Peek$(STAD,4)="PIt1"
  159.             A=STAD+8
  160.             For ST=1 To 64
  161.                L=Peek(A+1) : Exit If L=$FF
  162.                Add A,L+2
  163.                If ST=15 : DAT1=A-(STAD+8) : End If 
  164.             Next 
  165.          End If 
  166.       End If 
  167.       DAT=A-(STAD+8) : S$=Peek$(STAD+8,DAT1) : Open In 1,DEST$ : L=Lof(1) : Close 
  168.       Trap Reserve As Work 10,L+2
  169.       
  170.       If Errtrap=0
  171.          Bload DEST$,Start(10) : D=Hunt(Start(10) To Start(10)+L,S$)-Start(10)
  172.          If D>0
  173.             Append 1,DEST$ : Pof(1)=D : S$=String$(Chr$(0),DAT) : S=Varptr(S$) : Ssave 1,S To S+DAT : Close 
  174.          End If 
  175.       End If 
  176.       ERR["",0]
  177.    Else 
  178.       A= Extension_24_0150(TITLE$,"Unable to open AmosPro Interpreter Config File!","OK")
  179.       ERR["Purify not done!",1]
  180.    End If 
  181.    
  182. End Proc
  183. Procedure ERR[M$,A]
  184.  
  185.    M$=M$+Chr$(0) : Extension_24_009E 1,12,0,Varptr(M$) : If A Then Extension_24_038C 
  186.  
  187. End Proc
  188.  
  189. ABOUT:
  190. Data "AMOSPro Gui Compiler Shell V1.22"
  191. Data "     ï¿½1996-97 Dairymen Soft"
  192. Data "  Written by: Pietro Ghizzoni"
  193. Data "   E-Mail:  ghizzo@agonet.it"
  194.  
  195. ' Amos Professional Team production